ファイルサーバーの運用において「共有ディレクトリ (共有フォルダ)」という単語の取り扱いは注意しよう
共有ディレクトリ (共有フォルダ) と聞いて何をイメージするかは人それぞれ
こんにちは、のんピ(@non____97)です。
皆さんは「共有ディレクトリ(共有フォルダ)」と聞いて、何をイメージしますか?
捉え方は意外と聞き手によって異なります。
そのため、ファイルサーバーを構築するプロジェクトや運用する際は注意が必要な単語だと感じています。
以降「共有ディレクトリ」という単語について語っていきます。
なぜ 共有ディレクトリ という単語は誤解を生むのか
共有ディレクトリは以下の2要素で構成されます。
- 共有設定がされているディレクトリ自身
- 指定したディレクトリパスに対するSMBファイル共有の設定
指定したディレクトリパスに対するSMBファイル共有を作成することで、そのディレクトリに対して別コンピューターなど外部からアクセスすることが可能になります。
SMBファイル共有は以下方法で設定可能です。
-
エクスプローラーで選択したディレクトリの
Sharing
-
fsmgmt.msc
のShares
-
ONTAP CLIの
cifs share create
::> cifs share create -share-name "FSxN vol_ntfs" -path /vol_ntfs
::> cifs share show -share-name FSx*
Vserver Share Path Properties Comment ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm FSxN vol_ntfs /vol_ntfs oplocks - Everyone / Full Control
browsable
changenotify
show-previous-versions
svm FSxN /vol_ntfs/SMB oplocks Everyone / Full Control
日本語共有 share browsable
changenotify
show-previous-versions
svm FSxN日本語 /vol_ntfs/SMB oplocks Everyone / Full Control
共有 share browsable
changenotify
show-previous-versions
3 entries were displayed.
改めて「『共有ディレクトリ』と聞いて、何をイメージしますか?」という問いに戻ります。
おそらく、答えとしては
- 共有されているディレクトリ自身
- ディレクトリが共有されている状態
などと、先ほど紹介した共有ディレクトリの2つの要素に分かれると考えます。
その認識の違いがプロジェクトの中だとトラブルを引き起こすキッカケになります。
共有ディレクトリの言い換え例
私は「共有ディレクトリ」という単語は使わず、以下のように共有ディレクトリを構成する要素ごとに言い換えています。
意味 | 表現方法 |
---|---|
共有設定がされているディレクトリ自身 | "SMBファイル共有のパス" or "SMBファイル共有が設定されているディレクトリ" |
指定したディレクトリパスに対するSMBファイル共有の設定 | "SMBファイル共有" or "ファイル共有" or "共有設定" or "共有" |
個人的には「ディレクトリ」という単語が混乱する元なように感じています。
用語集のようなものがあれば、同様の内容を記載する。また、会話が噛み合わないと感じた場合は自分がどう捉えているのか文章に起こした上で説明すると良いでしょう。
共有ディレクトリ という単語を使った場合に起こりうる認識齟齬
その共有ディレクトリをコピーしてください
以降、共有ディレクトリ という単語を使った場合に起こりうる認識齟齬の例を紹介します。
まず、
「その共有ディレクトリをコピーしてください」
という依頼を受けた場合にどう捉えますか?
以下のような捉え方があると思います。
- 共有設定がされているディレクトリのみコピー
- 共有設定がされているディレクトリ配下のファイルやディレクトリのコピー
- 共有設定がされているディレクトリ自身と、そのディレクトリ配下のファイルやディレクトリのコピー
- 共有設定のみコピー
- 共有設定がされているディレクトリと、そのディレクトリ配下のファイルやディレクトリ + 共有設定のコピー
依頼者は「5. 共有設定がされているディレクトリと、そのディレクトリ配下のファイルやディレクトリ + 共有設定のコピー」のつもりでも、「2. 共有設定がされているディレクトリ配下のファイルやディレクトリのコピー」と捉えられる場合もあるでしょう。
もし、認識が違うまま作業をした場合、依頼者からすると「依頼した内容と違う」と思われてしまいます。
同様に移行をする場合は注意が必要です。
移行方法の例としてDataSyncとSnapMirrorを例に挙げます。
DataSyncによる転送は「2. 共有設定がされているディレクトリ配下のファイルやディレクトリのコピー」と「3. 共有設定がされているディレクトリ自身と、そのディレクトリ配下のファイルやディレクトリのコピー」の中間です。
共有設定は転送しません。また、共有設定されているディレクトリのメタデータは転送されますが、ディレクトリ自身は転送されません。
イメージを図にすると以下のとおりです。
実際の動作は以下記事をご覧ください。
SnapMirrorによる転送は「3. 共有設定がされているディレクトリ自身と、そのディレクトリ配下のファイルやディレクトリのコピー」です。(SMBファイル共有のパスがボリュームのジャンクションパスと同じ場合を除く)
SnapMirrorは「ボリュームで取得されたSnapshotのうち、条件に当てはまるSnapshotを転送する」機能です。そのため、Snapshotに含まれるデータがレプリケーションの対象になります。裏を返せばSnapshotに含まれないデータは対象外です。共有設定はSnapshotに含まれません。
イメージを図にすると以下のとおりです。
実際の動作は以下記事をご覧ください。
このように移行ツールによっては共有ディレクトリ配下のデータを転送するのみを行います。事前テストはするとは思いますが、移行先で共有設定を行わずに移行元を削除してしまうと、共有設定に関する情報をロストしてしまいます。
そのため、必ずデータの移行の前、もしくは後に共有設定を移行先に作成する、確かに設定されているか確認するなどのケアが必要です。
移行元のWindowsベースのファイルサーバーの共有設定をベースに、移行先のONTAPに共有設定を行う方法については以下記事で紹介しています。参考にしてみてください。
オペレーションとして共有ディレクトリの作成/更新/削除があります
「オペレーションとして共有ディレクトリの作成/更新/削除があります」
と運用依頼をされた場合、どのような作業があるのか正確に把握できる自信はありますか? 私は一回のやり取りだけで把握する自信はありません。
まず、共有ディレクトリの作成を例に取ります。
共有ディレクトリを用意するためには以下の2つの操作が必要です。
- ディレクトリの作成
- 共有設定の実施
「共有ディレクトリを作成」とした依頼を受けた場合、上述のどちらを依頼されているのでしょうか。
Amazon FSx for NetApp ONTAP(以降FSxN)を例にとると、qtreeという特殊ディレクトリを除いて、ONTAP CLIではディレクトリの作成をすることはできません。通常ディレクトリを作成する場合はSMBで該当パスに接続してディレクトリを作成する必要があります。
そのため、「2. 共有設定の実施」だけでなく、「1. ディレクトリの作成」も依頼されているのであれば、ONTAP CLIで操作する権限と接続経路だけでなく、SMBでアクセスしてディレクトリを作成するための権限および接続経路が必要になります。
このように読み取り方によっては対応しなければならないオペレーションは変わります。
また、「共有ディレクトリの更新」と言われた場合、どんなオペレーションを想像するでしょうか?
以下のようなオペレーションが考えられます。
- SMBファイル共有名の変更
- (実際既存の共有名を直接変更することはできないため、SMBファイル共有を作り直す必要がある)
- Access Based Enumeration (ABE) や 参照許可などSMBファイル共有のプロパティの変更
- SMBファイル共有のACLの変更
- SMBファイル共有のパスの変更
- SMBファイル共有が設定されているディレクトリの名前の変更
- SMBファイル共有が設定されているディレクトリのACLの変更
「共有ディレクトリの更新」の一単語だけで全てを把握することは難しいと思います。依頼された内容を咀嚼、分解し、再度組み立てる必要があります。
日本語難しい
ファイルサーバーの運用において「共有ディレクトリ (共有フォルダ)」という単語の取り扱いは注意するべきということをお伝えしました。
その単語がどのように捉えられる可能性があるのか理解しながらコミュニケーションをとりましょう。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!